package com.example.designPatten.singleton.fourth;

/**
* @Title:   []
* @Description: 
* @Date : 2016年4月26日下午2:32:07
* @Company: SI-TECH
* @author : LIJXD
* @version : 1.0
* @modify history
*  <p>修改日期    修改人   修改目的<p> 	
*/
public class Singleton {
	private volatile static Singleton uniqueInstance;
	
	private Singleton(){	}
	
	//双重枷锁，在getInstance减少使用同步
	//volatie关键词确保 uniqueInstance变量给初始化成Singleton实例时多线程正确的处理uniqueInstance，变量
	public static  Singleton getInstance(){ 
		if(uniqueInstance==null){
			synchronized (Singleton.class) {
				if(uniqueInstance==null){
					uniqueInstance = new Singleton();
				}
			}
		}
		return uniqueInstance;
	}
}
